package com.hwxm.ltim.entity.message;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 消息响应实体
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MessageResponse {

    /**
     * 响应类型
     * 1-登录响应 2-消息推送 3-心跳响应 4-系统通知 5-错误提示
     */
    private Integer type;

    /**
     * 响应码
     * 200-成功 400-客户端错误 500-服务器错误
     */
    private Integer code;

    /**
     * 响应消息
     */
    private String message;

    /**
     * 消息ID
     */
    private String msgId;

    /**
     * 消息数据
     */
    private Object data;

    /**
     * 时间戳
     */
    private Long timestamp;

    /**
     * 创建成功响应
     */
    public static MessageResponse success(Integer type, String message, Object data) {
        return MessageResponse.builder()
                .type(type)
                .code(200)
                .message(message)
                .data(data)
                .timestamp(System.currentTimeMillis())
                .build();
    }

    /**
     * 创建失败响应
     */
    public static MessageResponse error(Integer type, String message) {
        return MessageResponse.builder()
                .type(type)
                .code(400)
                .message(message)
                .timestamp(System.currentTimeMillis())
                .build();
    }
}

